BITS 32

;------------------------------------------------------------------------
global dword_to_hex

section .text


inicializar_pantalla:

	push ebp
	mov ebp, esp

        xor ecx, ecx 	; filas
	xor ebx, ebx	; columnas
	xor edx, edx	; para ir pasando los colores

	; primera línea
        ; en negro
.ciclo_primera_linea:
	cmp ebx, 80
	je .continuar
	mov WORD [gs:edx], 0x0000	
	add edx, 2
	inc ebx
	jmp  .ciclo_primera_linea

.continuar:
	xor ebx, ebx
        ; Área del mapa
.ciclo_filas:
        cmp ecx, 44
        je .fin_cuerpo

	mov WORD [gs:edx], 0xC000	; pinto rojo para el primer jugador
	add edx, 2

.ciclo_columnas:
        cmp ebx, 78
        je .fin_columnas

        mov WORD [gs:edx],  0x2A00
        add edx, 2
	inc ebx

    	JMP .ciclo_columnas
    
.fin_columnas:
	mov WORD [gs:edx], 0x9000	; pinto rojo para el primer jugador
	add edx, 2

        xor ebx, ebx
        inc ecx
    	JMP .ciclo_filas
	
.fin_cuerpo:
	; imprimo los fondos de
	; los cuadrados de puntaje
	add edx, 70
	xor ecx, ecx
.pintar_fondos_puntaje:
	cmp ecx, 5
	je .fin_fondo_puntaje
	xor eax, eax
.pintar_rojo:
	cmp eax, 5
	je .pintar_azul
	inc eax
	mov WORD [gs:edx], 0xC000
	add edx, 2
	jmp .pintar_rojo	
.pintar_azul:
	xor eax, eax
.ciclo_pintar_azul:
	cmp eax, 5
	je .fin_fila_fondo_puntaje
	inc eax
	mov WORD [gs:edx], 0x9000
	add edx, 2
	jmp .ciclo_pintar_azul	 
.fin_fila_fondo_puntaje:
	add edx, 140
	inc ecx
	jmp .pintar_fondos_puntaje	
.fin_fondo_puntaje:
	pop ebp
	ret

imprimir_nombre:
	push ebp
	mov ebp, esp 

        mov edx, 80
	mov ecx, [ebp + 8]	; obtengo el tam del nombre del grupo
        sub edx, ecx
	shl edx, 1
	mov edi, [ebp + 12]
	mov ah, 0x07

.ciclo_cadena:        
        mov     al, [edi]       ; al = caracter
        mov     [gs:edx], ax       ; Escribir en pantalla
        add     edx, 2          ; Avanzar el puntero de la memoria de video
        inc     edi             ; Avanzar el puntero de la cadena
        loop    .ciclo_cadena

 

        pop ebp
	ret


